<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>文献资源管理系统-角色管理</title>
<link rel="icon" href="favicon.ico" type="image/ico">
<meta name="keywords" content="文献资源管理系统-角色管理">
<meta name="description" content="文献资源管理系统-角色管理">
<meta name="author" content="yinqi">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/materialdesignicons.min.css" rel="stylesheet">
<link href="css/style.min.css" rel="stylesheet">
</head>
  <style>
    .col-lg-12{
      margin: auto;
    top: 17px;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    }
  </style>
<body>
<div class="lyear-layout-web" id="app">
  <div class="lyear-layout-container">
    <!--左侧导航-->

    <!--End 左侧导航-->
    
    <!--头部信息-->
 
    <!--End 头部信息-->
    
    <!--页面主要内容-->

    <main class="lyear-layout-content" >
      <div class="container-fluid">
        
        <div class="row">
          <div class="col-lg-12" >
            <div class="card">
              <div class="card-toolbar clearfix">
                <form class="pull-right search-bar" method="get" action="#!" role="form">
                  <div class="input-group">
                    <div class="input-group-btn">
                      <input type="hidden" name="search_field" id="search-field" value="title">
                      <button class="btn btn-default dropdown-toggle" id="search-btn" data-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
                      角色 <span class="caret"></span>
                      </button>
                    </div>
                    <input type="text" class="form-control" v-model="rolename.roleName" v-on:keyup="getlist(1)" name="keyword" placeholder="请输入名称">
                  </div>
                </form>
                <div class="toolbar-btn-action">
                  <a class="btn btn-primary m-r-5" data-toggle="modal" @click="click()"  data-target="#myModal" ><i class="mdi mdi-plus" ></i> 新增</a>
                  <el-button  class="btn btn-danger" type="warning" style="background-color:#f96868;" @click="removeBatch(sels)" :disabled="this.sels.length === 0||this.disabled"><i class="mdi mdi-window-close"></i>批量删除</el-button>
                </div>
              </div>
              <div class="card-body">
                
                <div class="table-responsive">
                  <table class="table table-bordered">
                    <template>
                      <el-table
                        v-loading="loading"
                        element-loading-text="拼命加载中"
                        :data="list"
                        style="width: 100%"  @selection-change="selsChange" >
                        <el-table-column  type="selection" width="65"></el-table-column>
                        <el-table-column
                          prop="roleName"
                          label="角色"
                          width="180">
                        </el-table-column>
                        <el-table-column
                          prop="count"
                          label="用户数量">
                        </el-table-column>
                  <el-table-column label="操作" align="center" min-width="100">
              　　　　<template slot-scope="scope">
                          <div class="btn-group">
                            <a class="btn btn-xs btn-default"   @click="roleunit(scope.row.roleId)" data-toggle="modal"  data-target="#myModalup"  type="button"  title="编辑" data-toggle="tooltip"><i class="mdi mdi-pencil"></i></a>
                          </div>
              　　　　</template>
              　　</el-table-column>
                      </el-table>
                      
                    </template>
                  </table>
                </div>
                
                <nav>
                  <ul class="pagination pagination-circle">
                    <li class="active"><a>{{totals}}</a></li>
                    <li>
                      <a type="button" @click="getlist(prePage)">
                        <span><i class="mdi mdi-chevron-left" ></i></span>
                      </a>
                    </li>
                    <li ><a>{{currentPage}}</a></li>
                    <li>
                      <a type="button" @click="getlist(nextPage)">
                        <span><i class="mdi mdi-chevron-right"></i></span>
                      </a>
                    </li>
                  </ul>
                </nav>  

                <!-- 添加模态框（Modal） -->
                <form action=""  class="form-horizontal" role="form">
                  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                      <div class="modal-dialog" style="height: 90%;">
                          <div class="modal-content">
                              <div class="modal-header">
                                  <h4 class="modal-title" id="myModalLabel">
                                      角色权限
                                  </h4>
                                  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                                      &times;
                                  </button>
                              </div>
                              <div class="modal-body" style="height: 100%;">
                                <div class="form-group">
                                  <label for="lastname" class="col-sm-3 control-label">角色名称</label>
                                  <div class="col-sm-7">
                                    <input class="form-control" type="text" v-model="role.roleName" placeholder="角色名称">
                                  </div>
                                   </div>
                                  <div class="form-group">
                                      <label for="lastname" class="col-sm-3 control-label">权限</label>
                                      
                                      <div class="col-sm-7">

                                        <template>
                                          <el-table
										  style="width: 100%"
                                          ref="topictable"
                                          :height="tableHeight"
                                            v-loading="loading"
                                            :data="menu"
                                            style="width: 100%"  @selection-change="selsChangeadd" >
                                        　　　　
                                        <el-table-column type="selection" width="65"></el-table-column>
                                            <el-table-column
                                              prop="name"
                                              width="180">
                                            </el-table-column>
                                            <el-table-column
                                              prop="pId"
                                              width="180">
                                            </el-table-column>
                                          </el-table>
                                          
                                        </template>
                                      </div>
                                     
                                  </div>
                                  
                              </div>
                              <div class="modal-footer">
                                  <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                                  <el-button id="button" data-dismiss="modal"  class="btn btn-default" type="primary" :loading="loading" @click="removeBatchadd(selsadd)"  >提交</el-button>

                              </div>
                          </div>
                      </div>
                  </div>
                </form>
<!-- 修改模态框（Modal） -->
<form action=""  class="form-horizontal" role="form">
  <div class="modal fade" id="myModalup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
      <div class="modal-dialog" style="height: 90%;">
          <div class="modal-content">
              <div class="modal-header">
                  <h4 class="modal-title" id="myModalLabel">
                      修改权限
                  </h4>
                  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                      &times;
                  </button>
              </div>
              <div class="modal-body" style="height: 100%;">
                <div class="form-group">
                  <label for="lastname" class="col-sm-3 control-label">角色名称</label>
                  <div class="col-sm-7">
                    <input class="form-control" type="text" v-model="roleup.roleName" placeholder="角色名称">
                  </div>
                   </div>
                  <div class="form-group">
                      <label for="lastname" class="col-sm-3 control-label">权限</label>
                      
                      <div class="col-sm-7">

                        <template>
                          <el-table
							  style="width: 100%"
							  ref="topictable"
							  :height="tableHeight"
                            v-loading="loading"
                            :data="menu"
                            style="width: 100%" v-model="menuup"   @selection-change="selsChangeup" >
                           
                        <el-table-column type="selection"  width="65"></el-table-column>
                            <el-table-column
                              prop="name"
                              width="180">
                            </el-table-column>
                            <el-table-column
                              prop="pId"
                              width="180">
                            </el-table-column>
                          </el-table>
                          
                        </template>
                      </div>
                     
                  </div>
                  
              </div>
              <div class="modal-footer">
                  <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                  <el-button id="button" data-dismiss="modal"  class="btn btn-default" type="primary" :loading="loading" @click="removeBatchup(selsup)"  >提交</el-button>

              </div>
          </div>
      </div>
  </div>
</form>
              </div>
            </div>
          </div>
          
        </div>
        
      </div>
      
    </main>
    <!--End 页面主要内容-->
  </div>
</div>

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="https://cdn.bootcss.com/vue/2.6.9/vue.min.js"></script>
<script src="https://cdn.bootcss.com/axios/0.19.0/axios.min.js"></script>

<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>

<script>
  new Vue({
    el:"#app",
  data:{
    list:[],
    menu:[],
    loading: false,
    rolename:{},
    currentPage:1, //当前页码
    size:5, 
    totals:"",
    prePage:1,
    nextPage:1,
    totalPage:1, //总页数

    sels: [],//选中显示的值
    selsadd: [],//选中显示的值
    selsup: [],//选中显示的值
    disabled:true,
    role:{},
    roleup:{},
    roleid:"",
    menuup:{},
	tableHeight: 600
  },
  created () {
    this.getlist(1);
  },
  mounted () {
    console.log(window.innerHeight)
    console.log(this.$refs.topictable.$el)
    console.log(this.$refs.topictable.$el.offsetTop)
    this.tableHeight =
      window.innerHeight - this.$refs.topictable.$el.offsetTop - 50;
    console.log(this.tableHeight)
  },
  methods: {
    getlist(currentPage){
      this.loading=true;
      setTimeout(() => {
      this.loading = false;

      axios.post("http://29n01o8660.oicp.vip/server/findallrolenamecount/"+this.currentPage+"/"+this.size,this.rolename)
      .then(res => {
        // this.list = res.data
        this.list = res.data.data.rows;
        this.totals = res.data.data.total;
        this.currentPage = currentPage;
        this.totalPage = Math.ceil(this.totals/this.size);
        this.prePage = 
        currentPage>1?currentPage-1:currentPage;
        this.nextPage = currentPage<this.totalPage?currentPage+1:currentPage;
        console.log(res)
      })
      .catch(err => {
        console.error(err); 
      })

       }, 2000);
       axios.get("http://29n01o8660.oicp.vip/server/findmenu")
       .then(res => {
         this.menu = res.data
         console.log(res)
       })
       .catch(err => {
         console.error(err); 
       })
    },
    selsChange(sels) {      
        //被选中的行组成数组 
        this.sels = sels;
        // alert(JSON.stringify(this.sels))
        //遍历被选中行数所组成的数组
        for(let element of this.sels){
        //如果视频正在转码或者等待转码,禁用按钮,结束方法
          if(element.status == 'waiting'||element.progress){
            this.disabled = true;
            return;
          }
             //如果没有视频正在转码或者等待转码,按钮可用
            this.disabled = false;
        }
    },
    removeBatch(rows){  //批量删除
      var ids = [];
      //alert(JSON.stringify(rows))
      rows.forEach(element =>{
        ids.push(element.roleId)
      })
      alert(ids)
      this.$confirm('确定要删除选中的文件吗?','提示').then(() =>{
        axios.get("http://29n01o8660.oicp.vip/server/rolebulkdel/"+ids)
        .then(res => {
          this.loading = true;
        setTimeout(() => {
          this.loading = false;

          this.$message({
          message: '恭喜你，批量删除成功',
          type: 'success'
           });

          }, 2000);

          this.getlist(1);
          console.log(res)
        })
        .catch(err => {
          console.error(err); 
        })
      }).catch(()=>{});
    },
    selsChangeadd(selsadd) {       //权限多选
        //被选中的行组成数组 
        this.selsadd = selsadd;
        // alert(JSON.stringify(this.sels))
        //遍历被选中行数所组成的数组
        for(let element of this.selsadd){
        //如果视频正在转码或者等待转码,禁用按钮,结束方法
          if(element.status == 'waiting'||element.progress){
            this.disabled = true;
            return;
          }
             //如果没有视频正在转码或者等待转码,按钮可用
            this.disabled = false;
        }
    },
    removeBatchadd(rows){       //批量添加
      var ids = [];
      //alert(JSON.stringify(rows))
      rows.forEach(element =>{
        ids.push(element.id)
      })
      alert(ids)
      this.$confirm('确定要添加选中的文件吗?','提示').then(() =>{
        axios.post("http://29n01o8660.oicp.vip/server/rolebulkadd/"+ids,this.role)
        .then(res => {
          this.loading = true;
        setTimeout(() => {
          this.loading = false;

          this.$message({
          message: '恭喜你，角色添加成功',
          type: 'success'
           });
          }, 2000);
          this.getlist(1);
          console.log(res)
        })
        .catch(err => {
          console.error(err); 
        })
      }).catch(()=>{}); 
    },
    roleunit(roleid){
     // alert(JSON.stringify(roleid))
      axios.get("http://29n01o8660.oicp.vip/server/findbyroleid/"+roleid)
      .then(res => {
        this.roleup = res.data
        console.log(res)
      })
      .catch(err => {
        console.error(err); 
      })
      axios.get("http://29n01o8660.oicp.vip/server/findbyrolemenuid/"+roleid)
      .then(res => {
        this.menuup = res.data
        console.log(res)
      })
      .catch(err => {
        console.error(err); 
      })
    },
    selsChangeup(selsup) {       //权限多选  
        //被选中的行组成数组 
        this.selsup = selsup;
        // alert(JSON.stringify(this.sels))
        //遍历被选中行数所组成的数组
        for(let element of this.selsup){
        //如果视频正在转码或者等待转码,禁用按钮,结束方法
          if(element.status == 'waiting'||element.progress){
            this.disabled = true;
            return;
          }
             //如果没有视频正在转码或者等待转码,按钮可用
            this.disabled = false;
        }
    },
    removeBatchup(rows){       //批量修改
      var ids = [];
      //alert(JSON.stringify(rows))
      rows.forEach(element =>{
        ids.push(element.id)
      })
      alert(ids)
      this.$confirm('确定要修改选中的文件吗?','提示').then(() =>{
        axios.post("http://29n01o8660.oicp.vip/server/roleupdate/"+ids,this.roleup)
        .then(res => {
          this.loading = true;
        setTimeout(() => {
          this.loading = false;
          this.$message({
          message: '恭喜你，角色修改成功',
          type: 'success'
           });
          }, 2000);
          this.getlist(1);
          console.log(res)
        })
        .catch(err => {
          console.error(err); 
        })
      }).catch(()=>{}); 

      // axios.post("http://localhost:8090/roleupdate",this.roleup)
      // .then(res => {
      //   this.loading = true;
      //   setTimeout(() => {
      //     this.loading = false;
      //     this.$message({
      //     message: '恭喜你，角色修改成功',
      //     type: 'success'
      //      });
      //     }, 2000);
      //     this.getlist(1);
      //   console.log(res)
      // })
      // .catch(err => {
      //   console.error(err); 
      // })


    },
  }
  })
</script>
</body>
</html>